package com.zhiqihang.course;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
//@Entity 是JPA（Java Persistence API）中的一个注解，用于标记一个类作为实体类，
// 使其可以被持久化到数据库中。@Entity 注解通常用在类定义上
@Data
@Entity(name="ziqihang_course")
/*。Serializable是Java中的一个标记接口，没有定义任何方法，它的存在主要是为了实现序列化功能。*/
public class Course implements Serializable {
    @Id
    @ApiModelProperty(value = "课程id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
/*在Java的JPA (Java Persistence API) 中，@GeneratedValue 注解用于指定实体类的主键生成策略。
当一个实体被持久化到数据库时，JPA 需要知道如何生成该实体的主键值。*/
    /*，@Column注解用于描述实体类中的字段与数据库表中列的映射关系。*/
    private Long id;
    @ApiModelProperty(value = "课程分类id")
    @Column(name="teacher_id")
    private Long teacherId;
    @ApiModelProperty(value = "课程名称")
    private String title;
    @ApiModelProperty(value = "课程价格")
    private double oldprice;
    @ApiModelProperty(value = "课程支付价格")
    private double paymentprice;
    @ApiModelProperty(value = "报名人数")
    private Integer participant;
    @ApiModelProperty(value = "大纲id")
    @Column(name="outlinetitle_id")
    private Integer outlinetitleId;
    @ApiModelProperty(value = "相关介绍")
    private String coursedescription;
    @ApiModelProperty(value = "创建时间")
    @Column(name="create_time")
    private Date createTime;
    @ApiModelProperty(value = "更新时间")
    @Column(name="update_time")
    private Date updateTime;
    private String imgurl;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }
}
